package com.liannong.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liannong.entity.TransportDetails;
import java.util.List;
import java.util.Map;

public interface TransportDetailsService extends IService<TransportDetails> {
    
    /**
     * 创建运输记录
     * @param orderId 订单ID
     * @param vehicleId 车辆ID
     * @param startLocation 起始地
     * @param endLocation 目的地
     * @param currentTemp 当前温度
     * @return 创建结果
     */
    boolean createTransport(String orderId, String vehicleId, String startLocation, String endLocation, Integer currentTemp);
    
    /**
     * 更新运输温度
     * @param transportId 运输ID
     * @param temperature 温度
     * @return 更新结果
     */
    boolean updateTemperature(Long transportId, Integer temperature);
    
    /**
     * 更新运输状态
     * @param transportId 运输ID
     * @param status 状态
     * @return 更新结果
     */
    boolean updateStatus(Long transportId, String status);
    
    /**
     * 获取订单的运输详情
     * @param orderId 订单ID
     * @return 运输详情
     */
    TransportDetails getOrderTransport(String orderId);
    
    /**
     * 获取车辆的所有运输记录
     * @param vehicleId 车辆ID
     * @return 运输记录列表
     */
    List<TransportDetails> getVehicleTransports(String vehicleId);
    
    /**
     * 获取所有运输记录
     * @return 运输记录列表
     */
    List<TransportDetails> getAllTransports();
    
    /**
     * 检查订单相关产品的温度是否在安全范围内
     * @param orderId 订单ID
     * @return 检查结果，Key为产品ID，Value为检查结果（true表示正常，false表示异常）
     */
    Map<Long, Boolean> checkOrderProductsTemperature(String orderId);
} 